Number VOPs

integer-length small, fast integer-length/fixnum

float=>xxx-float

realpart lmagpart numerator denominator decode-float small, fast decode-float/xxx-float scale-float small, fast scale-float/xxx-float

if-= (x y) small, fast if-=/fixnum small, fast if-=/xxx-float Do numeric comparison of X and Y. The codegen-info contains the continuations to transfer to in the true and false cases. Same for <, >.

+ (x y) => z small, fast +/fixnum small, fast +/fixnum=>integer small, fast +/xxx-float Same for -, *. Fixnum multiplication by a constant power of 2 (or near power of 2) can be done by a transform.

/ (x y) => z small, fast //xxx-float

negate small, fast negate/fixnum small, fast negate/fixnum=>integer small, fast negate/xxx-float Ditto for Abs.

truncate (x y) => q r small, fast truncate/fixnum

logand (x y) => z small, fast logand/fixnum Ditto for logior, logxor.

lognot (n) => z small, fast lognot/fixnum

ash (n x) => z small, fast ash/fixnum small, fast ash-c/fixnum

ldb dpb mask-field deposit-field These will only be used as a last resort. There should be transforms that turn fixnum operations with constant byte-specifiers into standard logical operations.